#ifndef _COMMON_H_
#define _COMMON_H_

// 标准库支持（通用）
#include "stdarg.h"
#include "stddef.h"
#include "stdint.h"
#include "stdlib.h"
#include "string.h"
#include "ctype.h"
#include "math.h"

#define sys_range(val, lo, hi) ((lo) <= (val) && (val) <= (hi)) //判断数据范围
#define sys_max(a, b) (((a) > (b)) ? (a) : (b)) //返回最大值
#define sys_min(a, b) (((a) < (b)) ? (a) : (b)) //返回最小值

#ifndef bool
#define bool uint8_t
#endif

#ifndef true
#define true ((uint8_t)1u)
#endif

#ifndef false
#define false ((uint8_t)0u)
#endif

#ifndef TRUE
#define TRUE ((uint8_t)1u)
#endif

#ifndef FALSE
#define FALSE ((uint8_t)0u)
#endif

/* param_assert 宏用于函数形参检查。
    如果 e = false，将调用 assert_failed() 函数。
    如果 e = true，将不执行任何操作。*/
#define param_assert(e) ((e) ? (void)0 : assert_failed())
void assert_failed(void);

typedef enum {
    close = 0,
    open
} v_status;

typedef enum {
    LEVEL_NONE = 0,
    LEVEL_1,
    LEVEL_2,
    LEVEL_3,
    LEVEL_4,
    LEVEL_5,
    LEVEL_6,
    LEVEL_7,
    LEVEL_8,
    LEVEL_9,
    LEVEL_10,
} level_t;


#endif
